package com.qczl.pme.controller.phone;

import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import com.qczl.core.controller.BaseController;
import com.qczl.model.Json;
import com.qczl.pme.controller.phone.vo.AreaVo;
import com.qczl.pme.controller.phone.vo.LiveVo;
import com.qczl.pme.controller.phone.vo.PersonVo;
import com.qczl.pme.controller.phone.vo.SignVo;
import com.qczl.pme.controller.phone.vo.TopicVo;
import com.qczl.pme.controller.phone.vo.VideoVo;
import com.qczl.pme.service.PhoneService;
import com.qczl.pme.vo.CameraVo;

/**
 * 手机控制器
 * 
 * @作者:SongR
 * @日期:2017年9月21日下午7:11:06
 */
@Controller
@RequestMapping(value = "/phone")
public class PhoneController extends BaseController {

	Logger log = LoggerFactory.getLogger(this.getClass());
	@Autowired
	PhoneService service;

	/**
	 * 获取人员区域级别
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:45:30
	 */
	@ResponseBody
	@RequestMapping(value = "/person/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getAreaByPersonV1(String phone) {
		Json j = new Json();
		try {
			PersonVo vo = service.getAreaByPersonV1(phone);
			if (null != vo) {
				j.setMsg("成功获取人员区域！");
				j.setResult(vo);
			} else {
				j.setMsg("该人员不可用！");
			}
		} catch (Exception e) {
			j.setMsg("接口异常！");
			j.setSuccess(false);
			log.error("获取人员区域级别接口异常！", e);
		}
		return j;
	}

	/********************* 会议直播 *********************/
	/**
	 * 获取直播列表
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:32:22
	 */
	@ResponseBody
	@RequestMapping(value = "/live/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getLiveV1(String phone, String start, String size) {
		Json j = new Json();
		try {
			List<LiveVo> vos = service.getLiveV1(phone, start, size);
			j.setLength(new Long(vos.size()));
			if (vos.size() > 0) {
				j.setMsg("成功获取直播列表！");
				j.setResult(vos);
				j.setSize(service.countLiveV1(phone));
			} else {
				j.setMsg("暂无直播！");
			}
		} catch (Exception e) {
			j.setMsg("获取直播列表失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取直播回看类型
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:33:11
	 */
	@ResponseBody
	@RequestMapping(value = "/live/topic/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getLiveTopicV1(String start, String size) {
		Json j = new Json();
		try {
			List<TopicVo> vos = service.getLiveTopicV1(start, size);
			if (vos.size() > 0) {
				j.setMsg("成功获取直播类型！");
				j.setResult(vos);
				j.setSize(service.countLiveTopicV1());
			} else {
				j.setMsg("暂无直播类型！");
			}
		} catch (Exception e) {
			j.setMsg("获取直播类型失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 根据回看类型获取回看列表
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:34:03
	 */
	@ResponseBody
	@RequestMapping(value = "/live/huikan/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getLiveBackV1(String topicid, String start, String size) {
		Json j = new Json();
		try {
			List<LiveVo> vos = service.getLiveBackV1(topicid, start, size);
			if (vos.size() > 0) {
				j.setMsg("成功获取直播回看！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size())/*service.countLiveBackV1(topicid)*/);
			} else {
				j.setMsg("暂无直播回看！");
			}
		} catch (Exception e) {
			j.setMsg("获取直播回看失败");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}
	/********************* 会议直播end *********************/

	/********************* 基层纪实 *********************/
	/**
	 * 获取县级会场
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:37:18
	 */
	@ResponseBody
	@RequestMapping(value = "/county/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getCountyV1(String phone, String start, String size) {
		Json j = new Json();
		try {
			List<CameraVo> vos = service.getCountyV1(phone, start, size);
			if (vos.size() > 0) {
				j.setMsg("成功获取县级会场！");
				j.setResult(vos);
				j.setSize(service.countCountyV1(phone));
			} else {
				j.setMsg("暂无县级会场！");
			}
		} catch (Exception e) {
			j.setMsg("获取县级会场失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取镇列表
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:37:49
	 */
	@ResponseBody
	@RequestMapping(value = "/area/zhen/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getTownV1(String phone, String start, String size) {
		Json j = new Json();
		try {
			List<AreaVo> vos = service.getAreaTownV1(phone, start, size);
			if (vos.size() > 0) {
				j.setMsg("成功获取镇信息！");
				j.setResult(vos);
				j.setSize(service.countAreaTownV1(phone));
			} else {
				j.setMsg("暂无镇信息！");
			}
		} catch (Exception e) {
			j.setMsg("获取镇信息失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 根据镇获取村级会场
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:38:23
	 */
	@ResponseBody
	@RequestMapping(value = "/village/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getVillageByTownV1(String phone,String townid,String start,String size) {
		Json j = new Json();
		try {
			List<CameraVo> vos = service.getVillageByTownV1(phone,townid,start, size);
			if (vos.size() > 0) {
				j.setMsg("成功获取取村级会场！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size()));
			} else {
				j.setMsg("暂无村级会场！");
			}
		} catch (Exception e) {
			j.setMsg("获取村级会场失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取直属部门会场
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:38:58
	 */
	@ResponseBody
	@RequestMapping(value = "/branch/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getBranchV1(String phone,String start,String size) {
		Json j = new Json();
		try {
			List<CameraVo> vos = service.getBranchV1(phone,start, size);
			if (vos.size() > 0) {
				j.setMsg("成功获取直属部门会场！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size()));
			} else {
				j.setMsg("暂无直属部门会场！");
			}
		} catch (Exception e) {
			j.setMsg("获取直属部门会场失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取会议回看列表
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:39:38
	 */
	@ResponseBody
	@RequestMapping(value = "/metting/back/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getMettingBackV1(String phone,String cameraid,String start,String size) {
		Json j = new Json();
		try {
			List<VideoVo> vos = service.getMettingBackV1(phone,cameraid,start, size);
			if (vos.size() > 0) {
				j.setMsg("成功获会议回看！");
				j.setResult(vos);
				j.setSize(service.countMettingBackV1(phone,cameraid));
			} else {
				j.setMsg("暂无会议回看！");
			}
		} catch (Exception e) {
			j.setMsg("获取会议回看失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取坐班签到人员
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:41:29
	 */
	@ResponseBody
	@RequestMapping(value = "/zuoban/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getZuoBanPersonV1(String phone,String start,String size) {
		Json j = new Json();
		try {
			List<PersonVo> vos = service.getZuoBanPersonV1(phone,start,size);
			if (vos.size() > 0) {
				j.setMsg("成功获取坐班签到人员！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size())/*service.countZuoBanPersonV1(phone)*/);
			} else {
				j.setMsg("暂无坐班签到人员！");
			}
		} catch (Exception e) {
			j.setMsg("获取坐班签到人员失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取坐班签到记录
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:42:15
	 */
	@ResponseBody
	@RequestMapping(value = "/zuoban/sign/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getZuoBanSignListV1(String phone,String personid,String start,String size) {
		Json j = new Json();
		try {
			List<SignVo> vos = service.getZuoBanSignListV1(phone,personid,start,size);
			if (vos.size() > 0) {
				j.setMsg("成功获取坐班签到记录！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size())/*service.countZuoBanSignListV1(phone,personid)*/);
			} else {
				j.setMsg("暂无坐班签到记录！");
			}
		} catch (Exception e) {
			j.setMsg("获取坐班签到记录失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取活动签到人员
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:41:29
	 */
	@ResponseBody
	@RequestMapping(value = "/huodong/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getHuoDongPersonV1(String phone,String start,String size) {
		Json j = new Json();
		try {
			List<PersonVo> vos = service.getHuoDongPersonV1(phone,start,size);
			if (vos.size() > 0) {
				j.setMsg("成功获取活动签到人员！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size())/*service.countHuoDongPersonV1(phone)*/);
			} else {
				j.setMsg("暂无活动签到人员！");
			}
		} catch (Exception e) {
			j.setMsg("获取活动签到人员失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取活动签到记录
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:42:15
	 */
	@ResponseBody
	@RequestMapping(value = "/huodong/sign/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getHuoDongSignListV1(String phone,String personid,String start,String size) {
		Json j = new Json();
		try {
			List<SignVo> vos = service.getHuoDongSignListV1(phone,personid,start,size);
			if (vos.size() > 0) {
				j.setMsg("成功获取活动签到记录！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size())/*service.countHuoDongSignListV1(phone,personid)*/);
			} else {
				j.setMsg("暂无活动签到记录！");
			}
		} catch (Exception e) {
			j.setMsg("获取活动签到记录失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取会议签到人员
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:41:29
	 */
	@ResponseBody
	@RequestMapping(value = "/huiyi/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getHuiYiPersonV1(String phone,String start,String size) {
		Json j = new Json();
		try {
			List<PersonVo> vos = service.getHuiYiPersonV1(phone,start,size);
			if (vos.size() > 0) {
				j.setMsg("成功获取会议签到人员！");
				j.setResult(vos);
				j.setSize(service.countHuiYiPersonV1(phone));
			} else {
				j.setMsg("暂无会议签到人员！");
			}
		} catch (Exception e) {
			j.setMsg("获取会议签到人员失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}

	/**
	 * 获取会议签到记录
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:42:15
	 */
	@ResponseBody
	@RequestMapping(value = "/huiyi/sign/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getHuiYiSignListV1(String phone,String personid,String start,String size) {
		Json j = new Json();
		try {
			List<SignVo> vos = service.getHuiYiSignListV1(phone,personid,start,size);
			if (vos.size() > 0) {
				j.setMsg("成功获取会议签到记录！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size())/*service.countHuiYiSignListV1(phone,personid)*/);
			} else {
				j.setMsg("暂无会议签到记录！");
			}
		} catch (Exception e) {
			j.setMsg("获取会议签到记录失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}
	/********************* 基层纪实end *********************/

	/********************* 美丽镇街 *********************/
	/**
	 * 获取子级区域
	 * 
	 * @作者:SongR
	 * @版本:v1
	 * @日期:2017年9月26日 上午9:46:24
	 */
	@ResponseBody
	@RequestMapping(value = "/area/child/v1", method = { RequestMethod.GET, RequestMethod.POST })
	public Json getAreaChildV1(String phone,String areapid,String start,String size) {
		Json j = new Json();
		try {
			List<AreaVo> vos = service.getAreaChildV1(phone,areapid,start,size);
			if (vos.size() > 0) {
				j.setMsg("成功获取子级区域！");
				j.setResult(vos);
				j.setSize(Long.valueOf(vos.size())/*service.countAreaChildV1(phone,areapid)*/);
			} else {
				j.setMsg("暂无子级区域！");
			}
		} catch (Exception e) {
			j.setMsg("获取子级区域失败！");
			j.setSuccess(false);
			log.error("接口异常！", e);
		}
		return j;
	}
	/********************* 美丽镇街end *********************/

}
